package cn.kgc.spring.basic.factory;

import java.util.ResourceBundle;

/**
 * @author: mosin
 * @version: v1.0  2022/6/29
 * NewBeanFactory  容器  管理对象
 *
 */
public class NewBeanFactory {

    private static ResourceBundle rb;

    static{
        // 加载配置文件
        rb = ResourceBundle.getBundle("applicationContext");
    }

    public  static  Object  getBean(String key){
       Object  obj = null;
        try {
            // 类的全类名 需要读取配置文件
            Class<?> clazz = Class.forName(rb.getString(key));
            obj = clazz.newInstance();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return obj;
    }


    // 泛型   方法上 使用泛型
    public  static  <T>  T getBean(String key,Class<T> tClass){
        T cast =  null;
        try {
            // 类的全类名 需要读取配置文件
            Class<?> clazz = Class.forName(rb.getString(key));
            Object obj = clazz.newInstance();
            cast = tClass.cast(obj);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return cast;
    }

}
